/**
* 工程名: 	Quickdisk
* 文件名: 	LoginService.java
* 创建人:  	guo.tianxiang
* 创建时间: 	2014-4-24 下午4:33:18
* 版权所有：	Guo tianxiang  
* 文件描述: 描述该文件的作用
* -----------------------------变更记录 ----------------------------- 
* 日期        		变更人      		版本号  		变更描述  
* ------------------------------------------------------------------  
* 2014-4-24     guo.tianxiang   	1.0       	first created  
*/
package com.tianxiang.service;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.tianxiang.dao.AdminDao;
import com.tianxiang.dao.UserDao;
import com.tianxiang.model.Admin;
import com.tianxiang.model.User;
import com.tianxiang.utils.Tools;

/**
 * 处理登录请求，核查是否存在用户及用户密码是否正确
 * @since Quickdisk 应用程序版本号
 * @version 1.0 2014-4-24
 * @author guo.tianxiang
 */
public class LoginService {
	static UserDao userDao=new UserDao();
	
	public static ArrayList<Object> checkUserLogin(String username,String password){
		//查询符合条件的所有用户
		List<User> users=null;
		if(username!=null&&username.contains("@")){
			List<User>usersByEmail=userDao.findByProperty("email", username);
			users=usersByEmail;
			System.out.println("邮箱登陆!!!");
		}else{
			List<User>usersByName=userDao.findByProperty("username", username);
			users=usersByName;
		}

//		List<User>usersByPhone=userDao.findByProperty("phone", username);
//		List<User>usersByEmail=userDao.findByProperty("email", username);
//		users.addAll(usersByEmail);
//		users.addAll(usersByPhone);
		ArrayList<Object>result=new ArrayList<Object>();
	//0表示无此用户，1表示通过验证，2表示密码错误
		for (Iterator<User> iterator = users.iterator(); iterator.hasNext();) {
			User user = (User) iterator.next();
			//如果用户没有配置昵称，将用户名设为昵称，用于在页面显示
				user.setNickname(user.getUsername());
			if (user.getPassword().equals(Tools.makeMD5(password))) {
				result.add("1");
				result.add(user);
				break;
			}else {
				result.add("2");
				break;		
			}
		}
		result.add("0");
		return result;				//返回0表示没有找到用户
	}
	
	public static ArrayList<Object> checkAdminLogin(String adminName,String adminPwd) {
		
		AdminDao adminDao=new AdminDao();
		List<Admin>adminList=adminDao.findByProperty("adminName", adminName);
		ArrayList<Object>result=new ArrayList<Object>();
		System.out.println("找到"+adminList.size()+"个管理员");
		for (Admin admin : adminList) {
			if (admin.getAdminPwd().equals(Tools.makeMD5(adminPwd))) {
				result.add("1");
				result.add(admin);
				break;
			}else {
				System.out.println("密码错误");
				result.add("2");
			}
		}
		result.add("0");
		return result;
	}
	public static void main(String[] args) {
		ArrayList<Object> list= LoginService.checkAdminLogin("tianxiang", "tianxiang");
		System.out.println(list.size());
		for (Iterator<Object> iterator = list.iterator(); iterator.hasNext();) {
			Object object = (Object) iterator.next();
			System.out.println(object);
		}
	}
}
